1. Field of the Invention
The invention relates to the field of multi-task processors which employ hardware dispatchers.
2. Prior Art
In some digital processing applications it is necessary for a single digital processor to perform numerous, distinct tasks. One such application is where a digital processor is used as a peripheral unit for a digital computer. In this case the processor may be used to receive information from (and communicating information to) a disk or a synchronous data link. In this application, by way of example, the processor may be called upon to examine the incoming data for errors, re-format the data, act as a buffer for a direct memory access unit, count data bytes, and control the flow of data in various buffers coupled to the computer or to a data source, in addition to many other tasks.
A multi-task processor must include means for establishing the order in which the various tasks are performed. For effective and efficient use the processor must be able to establish this order based on a set of priorities. For example, a high priority task may be one which is necessary for continuous flow of data from a data source. Lower priority "housekeeping" tasks must be delayed until the higher priority tasks are completed (or partially completed). This ordering or selection of tasks requires a dispatcher or dispatching operation.
Most single-task digital processors can be programmed to do multiple tasks. However, this requires a program for the dispatching operation, that is, a program to determine which tasks need performing and the order in which they should be performed. The program must select the highest priority request and then generate a jump address to the memory location for the appropriate routine. Moreover, a location within each of the routines must be found since efficient operation requires changing from one task to another before the completion of a task. For example, after a task is partially accomplished, the priorities may change requiring another routine. When the processor returns to the first task it must begin where it left off. In many practical applications this dispatching operation requires an intolerable amount of time.
The disclosed processor with its hardware dispatcher provides an efficient and effective means for controlling a multi-task processor.